]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ScreenShield: animate going from the unlock dialog to the lock screen
authorGiovanni Campagna <gcampagna@src.gnome.org>
Mon, 13 Aug 2012 23:43:59 +0000 (01:43 +0200)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Fri, 14 Sep 2012 15:11:57 +0000 (17:11 +0200)
If the user presses esc in the dialog, tween the lock screen from
the top instead of showing it immediately.

https://bugzilla.gnome.org/show_bug.cgi?id=681143

js/ui/screenShield.js

index 21e05673ebbabbf963db5f9bf1d724eec58726cc..8caa9cccc51214177a2f85a4cdbe6d08f49937d5 100644 (file)
@@ -644,14 +644,14 @@ const ScreenShield = new Lang.Class({
         this._dialog.destroy();
         this._dialog = null;
 
-        this._resetLockScreen(false);
+        this._resetLockScreen(true, false);
     },
 
     _onUnlockSucceded: function() {
         this._tweenUnlocked();
     },
 
-    _resetLockScreen: function(animate) {
+    _resetLockScreen: function(animateLockScreen, animateLockDialog) {
         this._ensureLockScreen();
         this._lockDialogGroup.scale_x = 1;
         this._lockDialogGroup.scale_y = 1;
@@ -659,7 +659,7 @@ const ScreenShield = new Lang.Class({
         this._lockScreenGroup.show();
         this._lockScreenState = MessageTray.State.SHOWING;
 
-        if (animate) {
+        if (animateLockScreen) {
             this._lockScreenGroup.y = -global.screen_height;
             Tweener.removeTweens(this._lockScreenGroup);
             Tweener.addTween(this._lockScreenGroup,
@@ -671,7 +671,12 @@ const ScreenShield = new Lang.Class({
                                },
                                onCompleteScope: this
                              });
+        } else {
+            this._lockScreenGroup.fixed_position_set = false;
+            this._lockScreenShown();
+        }
 
+        if (animateLockDialog) {
             this._lockDialogGroup.opacity = 0;
             Tweener.removeTweens(this._lockDialogGroup);
             Tweener.addTween(this._lockDialogGroup,
@@ -680,7 +685,6 @@ const ScreenShield = new Lang.Class({
                                transition: 'easeOutQuad' });
         } else {
             this._lockDialogGroup.opacity = 255;
-            this._lockScreenShown();
         }
 
         this._lockScreenGroup.grab_key_focus();
@@ -812,7 +816,7 @@ const ScreenShield = new Lang.Class({
                 Main.sessionMode.pushMode('unlock-dialog');
         }
 
-        this._resetLockScreen(animate);
+        this._resetLockScreen(animate, animate);
 
         this._isActive = true;
         this.emit('lock-status-changed');